package com.ror.java.se.reflect;

import java.lang.reflect.Field;

public class Demo03 {
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        Class<Student> stuClass = Student.class;
        System.out.println("====getFields===============================================================");
        for (Field field : stuClass.getFields()) {
            System.out.println(field);
        }
        System.out.println("====getDeclaredFields=======================================================");
        for (Field declaredField : stuClass.getDeclaredFields()) {
            System.out.println(declaredField);
        }
        System.out.println("====getField================================================================");
        System.out.println(stuClass.getField("name"));
        System.out.println("====getDeclaredField========================================================");
        Field ageField = stuClass.getDeclaredField("age");
        System.out.println(ageField);
        System.out.println("====getModifiers============================================================");
        System.out.println(ageField.getModifiers());
        System.out.println("====getName=================================================================");
        System.out.println(ageField.getName());
        System.out.println("====getType=================================================================");
        System.out.println(ageField.getType());
        System.out.println("====get=====================================================================");
        Student stu1 = new Student("张三", 23, "男");
        ageField.setAccessible(true); //临时取消访问权限检查（暴力反射）
        int age = (int) ageField.get(stu1);
        System.out.println(stu1);
        System.out.println(age);
        System.out.println("====set=====================================================================");
        ageField.set(stu1, 31);
        System.out.println(stu1);
        System.out.println("============================================================================");
    }
}
